home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 July & August / PCWorld_2004-07-08_cd.bin / Software / topware / sandra / san2004.SP1-9104-Win32-SSO.exe / {app} / examples / mySQL Schema.sql < prev    next >
Text File  |  2003-12-16  |  3KB  |  138 lines

  1.  
  2. #
  3. # mySQL 3.23+ Schema for Sandra Report
  4. #
  5. # Database is assumed to have been created already.
  6. # No size settings included, please add as required.
  7. #
  8. # Copyright 1995-2004, C. A. Silasi, SiSoftware.
  9. # All Rights Reserved.
  10.  
  11. #
  12. # Kill all tables
  13. #
  14.  
  15. DROP TABLE Item;
  16.  
  17. DROP TABLE ItemGroup;
  18.  
  19. DROP TABLE Device;
  20.  
  21. DROP TABLE Class;
  22.  
  23. DROP TABLE Module;
  24.  
  25. DROP TABLE Report;
  26.  
  27. DROP TABLE IDCount;
  28.  
  29. #
  30. # Create new tables
  31. #
  32.  
  33. CREATE TABLE Report (
  34.     ID            INT PRIMARY KEY,
  35.     ProgramName        VARCHAR(255),
  36.     ProgramVersion        VARCHAR(255),
  37.     RegisteredUser        VARCHAR(255),
  38.     RegisteredCompany    VARCHAR(255),
  39.     LicenceStatus        VARCHAR(255),
  40.     LicenceExtra        VARCHAR(255),
  41.     UserID            VARCHAR(255),
  42.     HostName        VARCHAR(255),
  43.     SystemID        VARCHAR(255),
  44.     WebUserID        VARCHAR(255),
  45.     RunID            VARCHAR(255),
  46.     RunDate            DATETIME,
  47.     Completed        BIT NOT NULL
  48. );
  49.  
  50. CREATE TABLE Module (
  51.     ID            INT PRIMARY KEY,
  52.     ReportID        INT NOT NULL,
  53.     Name            VARCHAR(255) NOT NULL,
  54.     TypeID            INT NOT NULL,
  55.     HasClass        BIT NOT NULL,
  56.     HasDevice        BIT NOT NULL,
  57.     HelpID            INT NOT NULL,
  58.  
  59.     CONSTRAINT        cnstMRID FOREIGN KEY(ReportID) REFERENCES Report(ID)
  60. );
  61.  
  62. CREATE TABLE Class (
  63.     ID            INT PRIMARY KEY,
  64.     ModuleID        INT NOT NULL,
  65.     Name            VARCHAR(255) NOT NULL,
  66.     TypeID            INT NOT NULL,
  67.     HelpID            INT NOT NULL,
  68.  
  69.     CONSTRAINT        cnstCMID FOREIGN KEY(ModuleID) REFERENCES Module(ID)
  70. );
  71.  
  72. CREATE TABLE Device (
  73.     ID            INT PRIMARY KEY,
  74.     ModuleID        INT NOT NULL,
  75.     ClassID            INT,
  76.     Name            VARCHAR(255) NOT NULL,
  77.     TypeID            INT NOT NULL,
  78.     HelpID            INT NOT NULL,
  79.  
  80.     CONSTRAINT        cnstDMID FOREIGN KEY(ModuleID) REFERENCES Module(ID)
  81. );
  82.  
  83. CREATE TABLE ItemGroup (
  84.     ID            INT PRIMARY KEY,
  85.     ModuleID        INT NOT NULL,
  86.     ClassID            INT,
  87.     DeviceID        INT,
  88.     Name            VARCHAR(255) NOT NULL,
  89.     TypeID            INT NOT NULL,
  90.     HelpID            INT NOT NULL,
  91.  
  92.     CONSTRAINT        cnstGMID FOREIGN KEY(ModuleID) REFERENCES Module(ID)
  93. );
  94.  
  95. CREATE TABLE Item (
  96.     ID            INT PRIMARY KEY,
  97.     ModuleID        INT NOT NULL,
  98.     GroupID            INT,
  99.     Name            VARCHAR(255) NOT NULL,
  100.     DataValue        VARCHAR(255),
  101.     IconID            INT NOT NULL,
  102.     TypeID            INT NOT NULL,
  103.     HelpID            INT NOT NULL,
  104.     
  105.     CONSTRAINT        cnstIMID FOREIGN KEY(ModuleID) REFERENCES Module(ID)
  106. );
  107.  
  108. CREATE TABLE IDCount (
  109.     TableName        VARCHAR(10) PRIMARY KEY,
  110.     CurrentID        INT NOT NULL
  111. );
  112.  
  113. #
  114. # Set-up keys/indexes
  115. #
  116.  
  117. CREATE INDEX ndxUserID ON Report (UserID);
  118.  
  119. CREATE INDEX ndxSystemID ON Report (SystemID);
  120.  
  121. CREATE INDEX ndxWebUserID ON Report (WebUserID);
  122.  
  123. CREATE INDEX ndxModuleName ON Module (Name);
  124.  
  125. CREATE INDEX ndxItemName ON Item (Name);
  126.  
  127. #
  128. # Inserts
  129. #
  130.  
  131. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Item', 1);
  132. INSERT INTO IDCount (TableName, CurrentID) VALUES ('ItemGroup', 1);
  133. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Device', 1);
  134. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Class', 1);
  135. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Module', 1);
  136. INSERT INTO IDCount (TableName, CurrentID) VALUES ('Report', 1);
  137.  
  138.